package cn.bonoon.kernel.web.controllers;

/**
 * <pre>
 * 根据定义的状态来判断是否显示该状态的控制；
 * 需要用于判断的定义可以自行指定，默认为:<code>{@link #property}="status"</code>
 * 
 * <code>{@link #status}</code>表示接受的状态值，只有该值为指定的状态值，该按钮才允许操作；
 * 如：<code>{@link #status}={1,3,4}</code>表示只有当数据的状态为1/3/5的时候该按钮才允许操作
 * 
 * 这里用于生成javascript代码，用在客户端来控制，客户端的代码，都需要用户操作权限的过滤
 * </pre>
 * @author jackson
 *
 */
public class GridButtonStatus {
	/**
	 * 用于控制状态的字段;默认值为"status"
	 */
	private final String property;
	/**
	 * 允许操作的状态值
	 */
	private final int[] status;
	
	public static GridButtonStatus valueOf(String property, int... status){
		return new GridButtonStatus(property, status);
	}
	
	public GridButtonStatus(int... status){
		this("statusValue", status);
	}
	
	public GridButtonStatus(String property, int... status) {
		this.property = property;
		this.status = status;
	}
	
	public boolean ckeckStatus(){
		return null != status && status.length > 0;
	}

	public int[] getStatus() {
		return status;
	}

	public String getProperty() {
		return property;
	}
	
}
